
#定义一个统计目录（含有子目录）大小的函数，并测试其功能

#导入OS模块

import os

#定义这个函数
#注意：该函数只可统指定目录为文件夹的情况

def countsize(fder):
    
    #统计计算目录大小的函数，目录包含子目录；
    
    #修改目标路径为当前工作目录
    os.chdir(fder)
    s=0
    a=os.listdir(fder)
    
    print(fder,'目录内所含有的文件：','\n',a) #列出主目录的内容
    
    for i in a:
        fder1=os.path.join(fder,i) #这一行一定要写这里，因为以下的函数参数均必须是带有*路径*的；
        
        if os.path.isfile(fder1):
            s+=os.path.getsize(fder1)
            
        if os.path.isdir(fder1):
            s+=countsize(fder1) #递归调用函数本身
            
    print('目录',fder,'的大小为：','size =',s,'B(字节)')
    return s

#测试该函数

while True:
    keyin=input('请输入需要统计的文件目录，该目录只可以是文件夹不可以是文件（格式如例： D:\\TEST\\aa）：')

    if keyin=='':
        break
    else:
        countsize(keyin)
        print()
        




